// let m = 2,
//   n = 2;
// let map = new Array(n + 1).fill(false).map(() => new Array(m + 1).fill(false));
// let res = 0;
// function backtrack(i, j) {
//   if (i < 1 || j < 1 || i > n || j > m || map[i][j]) {
//     return 0;
//   }
//   if (i == n && j == m) {
//     return 1;
//   }
//   map[i][j] = true;
//   res = backtrack(i - 1, j) + backtrack(i, j - 1) + backtrack(i, j + 1);
//   map[i][j] = false;
// }
// backtrack(1, 1);
// console.log(res);
line = readline();
{
  line = parseInt(line);
  while (line--) {
    let input = readline();
    let n = input.split(" ")[0];
    let m = input.split(" ")[1];
    let map = new Array(n + 1)
      .fill(false)
      .map(() => new Array(m + 1).fill(false));
    let res = 0;
    function backtrack(i, j) {
      if (i < 1 || j < 1 || i > n || j > m || map[i][j]) {
        return 0;
      }
      if (i == n && j == m) {
        return 1;
      }
      map[i][j] = true;
      res = backtrack(i - 1, j) + backtrack(i, j - 1) + backtrack(i, j + 1);
      map[i][j] = false;
    }
    backtrack(1, 1);
    console.log(res);
  }
}
